Public (software) Library Programming Library Descriptions and Compilation Copyright 1993 Nelson Ford Duplication, reprinting and distribution of these descriptions is restricted. See LICENSE.DOC in the PSL_NEWS directory for complete information =====Assembly Language Contents: -----DOS_ACCS: assembler routines for accessing DOS, DOS functions, etc. -----MACROS: assembler macros -----MEMORY: assembler code for TSR's, memory management, etc. -----COMMUNICA: assembler routines for communications -----DAT_TIME: date and time routines for assembler -----INPUT: assembler data entry routines -----GENERAL: various assembler routines -----NUMERIC: assembly source for numeric manipulation -----SOUNDS: assm. routines for sound generating -----ASM_DISM: assemblers, disassemblers, cross-assemblers -----TOOLS: assembler tools -----HUMOR -----TUTORS: assembly language tutorials -----VIDEO: assembler video routines -----SIMULATR: simulators for other CPUs -----DOS_ACCS: assembler routines for accessing DOS, DOS functions, etc. [CMOS] CMOS is assembler source for a program that will dump your CMOS data to disk. The executable is included. [FMT_CAH] FMT 1.0 (Hardesty, Clair Alan; $10-$25) is the assembler source code (and executable) for a full-fledged disk formatting utility. Features include fast formatting, installing the system, bypassing the "insert disk" prompt, redirectable output, and extensive error trapping. [CHIPS] Chips (Shea, Pat; $0) is assembler source for processor/coprocessor detection for V20, 8086, 88, 186, 286, 386 and sort of on the 486. Detects 8087, 287, 387. [CMOSTD] CMOSTD (Cravener, William; $0) is code for retrieving and displaying CMOS time and date. -----MACROS: assembler macros [AMACROS] A-Macros 2.10 (Endoh, Hortens S.; $0) is an assembler macro package for Microsoft's Macro Assembler MASM to write control structures easier in source code. [LMS] LMS 2.50 (Hurukawa, Satoru; $?) is a set of macros to be used with the Optasm assembler, by SLR Systems. By using these macro sets, you may find it easier to express certain conditional jumps and labelings. Some routine codes are expanded automatically with these macros. [8087] 8087.ASM - codemacros for 8087. [Assemble] Assemble.MAC - macro library for assemblies. [BIOS] BIOS data area equates and function call macros. [DOS] DOS equates, function call macros, and structures. [Equate.INC] Equate.INC - useful equates for assemblies. [GenkMacA.ASM] GenkMacA.ASM - library of general purpose macros. [GenlMacB.ASM] GenlMacB.ASM - library of general purpose macros. [Interupt.MAC] Interupt.MAC - macros for items that replace BIOS calls. [M8087.MAC] M8087.MAC - file of macros for 8087 support. [Macro.ASM] Macro.ASM - DOS Function call macros. [Macro.INC] Macro.INC - A few DOS service macros. [OneKey.ASM] OneKey.ASM - make your own macros. [Skeleton.ASM] Skeleton.ASM - skeleton for coding asm program. [Struct.MAC] Struct.MAC - structured control macros. [Strutest.ASM] Strutest.ASM - test program for structured control macros. -----MEMORY: assembler code for TSR's, memory management, etc. [CLOK_SH] Clok-SH (Hopson, Scott; $0) is the assembler source and executable for a TSR to display the time in a corner of the screen. In our tests, it quickly lost time to the system clock, but the code is of interest anyway. [INT5] INT5 (Giannini, Mario; $0) is assembly language source code and .COM file for a sample interrupt handler and TSR. [TSRTest] TSRTest (Thompson, Gary; $0) is assembler source code for a small TSR, meant to illustrate how to write TSR's. [AMISLIB@] AMISLIB 0.9 (Brown, Ralf; $0) is source for creating small TSRs which can load high, detect hot-key con- flicts, and which may be unloaded in any order. Source for several sample TSRs is included. [CLOCKJC] Clock (Chavez, Joe L.; $0) is an example of how to create a TSR clock. Source code included. [CM_INT] CM_INT (Martin, Charles ASP; $0) is a TSR Interrupt service for Assembly programmers. It includes editable data entry line with prompt string, julian date conversion, ASCII string to binary number conversion, screen and line print services. [PRNWAT] Printer Watch is ASM code that shows how to write a TSR that monitors printer activity, allowing you to make character/control substitutions, etc. [SCBL_SH] ScBl-SH (Hopson, Scott; $0) is assembler source and executable for a TSR to blank the screen. -----COMMUNICA: assembler routines for communications [BAUDOT] Baudot (Hand, Peter; $0) is assembler source for an ASCII-Baudot terminal emulator. -----DAT_TIME: date and time routines for assembler [DATER1] Dater is the assembler source, OBJ and LIB files for calculating days between dates. [DELAYS] Delays (Cravener, William; $0) creates timed pauses from milliseconds to minutes. [WAITASM] Wait (Doyle, J. L.; $0) is a flexible MASM procedure that can be used in multiple ways within one program. It can be used to cause a delay of varying length depending on the value of the variable passed to it by the calling procedure. Though written for MASM, it could easily be modified for use with high level languages as well. -----INPUT: assembler data entry routines [E_DN] "E" (E-DN) (Nye, David; $0) is TASM source and executable for a text editor. Features include block operations and search/replace. -----GENERAL: various assembler routines [FUNPCK2] FunPck2 (Cravener, William; $0) is assembler source code (and executables) for a collection of utilities: display big print, convert decimal-hex-binary, change cursor size, display free disk space, display directory listing, display text files, change files from upper/lower case, switch monitors. [ASMLib] ASMLib 3.7 (Herr, Douglas R.; $25-$100) is a collection of 120 subroutines for assembly language programmers. It features screen manipulation, equipment detection, a line editor, string manipulation, CGA/Hercules/EGA/VGA/Super VGA graphics, and much more. [ASMWIZ] Assembly Wizard's Library 1.6 (Hanlin, Thomas G. III; $29) is a collection of over 150 routines for programming in assembly language. It includes sound effects, parsing, advanced file support, mouse handling, string functions, lightning screen I/O, 32-bit math, high-resolution timers, graphics support and much more. -----NUMERIC: assembly source for numeric manipulation [NUMVERT] Numvert (Swift-Ware; $0) contains assembler source code for a utility to convert decimal, hex, and binary numbers. A compiled executable is also included. [Pointr] Pointr (Cravener, William; $0) is commented assembly source code showing how to change the graphics mouse pointer. [FLOATADD] Floatadd - floating point addition. [QMath10] QMath 1.0 (Moser, Roger; $0) is a set of fast 64-bit signed integer arithmetic routines in assembler. -----SOUNDS: assm. routines for sound generating [FUNPCK3] FunPck3 (Cravener, William; $0) is a set of six different sound effects: telephone, phasor, whooper, siren, Cheer, and Ncounter. Assembler source code is included for each. [FUNPCK4] FunPck4 (Cravener, William; $0) is a set of more sound effects routines in assembler (with executables): arcade game sounds, motor, telephone, falling/rising sound, and a country tune. [IN_OUT] In-Out (Cravener, William; $0) shows how to create sounds through the PC's speaker. Source and examples are included. [PORT_IN] Port-In-Out (Cravener. William; $0) is a tutorial and sample code for making sounds on the PC's speaker. -----ASM_DISM: assemblers, disassemblers, cross-assemblers [D4851Z] D4851Z (Post, Jeffery, L.; $0) are intelligent cross disassemblers for the MCS-48 and 8051/8052 micro- controllers and for the Z80 microprocessor. It includes D48, a new version of D51, and all new DZ80. ASM and HEX files are included. [DISASM] DisASM is a disassembler written in Basic. [LASS] Little Assembler 1.0 (Mooney, Dorothy R.; $?) is an 8088 assembler for small programs. It will create only COM files. It is perfect for Q&D jobs and for laptops with limited disk space - LASS is only 11k. Separate source files may be linked during assembly. [OBJ2ASM] OBJ2Asm converts OBJ files to assembler source files. [SIM01] Sim01 (Lueschow, Kevin; $5) is a debugging tool that simulates a 6801/6800. It lets you look at and change the registers and memory. It also disassembles the code that the program counter is about to execute, and allows you to simulate the interrupts. [ASMGEN] ASMGen 2.01 (Gersbach, J. and Damke, J.; $?) generates cross-referenced assembly language code from any executable file. [ASSEMBL] Assemble (Fulford, George; $10) is a simple assembler for Intel 8088/8086 instruction set, written in TPascal. [Un_Asm] Un-Asm (Gordon, Guy C.; $20) converts the unassembled listing of a .COM file from DEBUG into an .ASM file which can be modified and re-assembled with the Macro assembler. [A86_D86] A86 & D86 (Isaacson, Eric ASP; $80) is a full-featured, professional- quality assembler that is as highly compatible with the standard Intel/IBM assembly language as possible, given design and language enhancements necessary to make A86 "significantly better" than MASM. Support for the additional instructions of the IIT-2C87 and the 80387 floating-point coprocessors and compatibility with programs written for MASM are included. The A86 manual is so thorough that it can be used to learn 86 assembly language. Also included is an outstanding debugger, D86. An AFIX package is provided which is a set of machine-readable specifications for modifying 61 ASM files from PC Magazine's utilities so that they will assemble under A86. [CHASM] Chasm (Cheap Assembler) (Whitman, David; $0) is an assembler written in uncompiled BASIC. This is a good learning tool. It also offers symbolic debugging support with Trace86 (a commercial product). [CROS_ASM] Cross Assemblers Series I and II (Micept Instruments Inc.; $49/each) is a set of two-pass assemblers for the Intel 8051/52, 8044, 8048, 8080, 8085, 8096, and Z80 cpus. These versions do not support macros, conditional assembly nor included files, but are otherwise very complete. [DASM] DASM (Williams, Dave; $0) is a disassembler for 8086 COM files up to 32K in size. Source code is included. [MD86] MD86 (Calkins, Clark A.; $18) is an interactive disassembler for taking Intel 8086 programs apart and generating source code files compatible with MASM. [TASM] TASM (Speech Technology Inc.; $30) is a set of table driven cross assemblers for the MS-DOS environment. Currently versions for the 6502, 8048, 8051, 8080/8085 and Z80 microprocessors are supported, but you can also build versions for other 8 bit microprocessors. [YILMAZ] Yilmaz Disassembler 1.1 (Towfeek, Yilmaz; $25) is an interactive disassembler. It teaches assembly language by allowing the user to be a part of the disassembling process. You can disassemble in different modes such as visibility of machine codes, visibility of data labels and using different data format. Requires 400K free memory. [ZanySoft] ZanySoft Debugger (Kirmse, Christopher; $25) is a symbolic debugger for most common assemblers such as MASM, TASM, and A86. Features include pull down menus, multiple movable and resizable windows, quick-key combinations, and macros. It is fast, easy and only 40K. ----TOOLS: assembler tools [A86_MAKE] A86_Make is a Make batch file for the shareware assembler, "A86". [ASMFLO] AsmFlow (Quantum Software; $0) generates flow charts, tree diagrams and provides a variety of other functions for assembly language programmers. [ASSEM] Assem (Richwell, Gunner; $5) contains several programs: FOFFSET.COM will compute the offset value for a given segment:offset combination and a new segment value. FPHYS.COM will compute the physical address value for a given segment:offset combination. FSEGMENT.COM will compute the segment value for a given segment:offset combination and a new offset value. [FPANEL] FPanel is a PC Front Panel Simulation. It displays the contents of the IP, FLAG, SS, ES and DS registers at the top of the screen. Assembler source is included. (res:1k) [MPUBLIC] MPublic 2.0 (Derouen, Craig; $0) parses MASM and TASM source files and builds a public statement file for all symbols for use with debuggers. It automatically excludes local labels as defined by MASM and TASM. Includes C source code. [CASE] Case (Bly, Vincent; $0) is for assembly language programmers who wish to write their source in all caps and their comments in lower case. It provides automatic case switching and indicates the current case by the shape of the cursor. [DISP_REG] Disp-Reg (Gilbrech, Skip; $?) will display registers as set by loader. [LOAD] Load (Laboratory Microsystems; $?) will load .COM files bigger than 64k. [OBJSNOOP] ObjSnoop - will find and display label references in .OBJ files. [OPER] Oper (Duncan, Ray; $?) will test Microsoft assembler operators, show operation of various operators and demonstrate some notational idiosyncracies. [PRHEX] PRHex - displays 4 hexadecimal numbers contained in AX. [PX] PX Procedure Cross Referencer (Dunford, Christopher J.; $?) is a procedure documenter. It allows you to print out all of the procedure prologues in a "dictionary" and to then print a cross reference of all procedural calls; i.e., a listing of which procs call which procs. [REPRTJJ] Report (Johnsen, James L.; $0) will return a report of what is in what register when the program enters. [Snap_D] Snap_D (Gentry, Don; $?) is a user written interrupt service routine. It is designed for assembly language programmers to provide debugging assistance. It will print selected portions of memory when invoked. [TRACE2] Trace02 (Fricano, C. P.; $?) will display the current values of the CS:IP registers. The CS:IP can be sampled a maximum of 18 times per second. This program must be the last inperupt handler loaded. [UAsm_Lst] UAsm-Lst.BAS removes addresses from files created from debug unassemble script files and inserts labels. A script file (ASCII) is created with the debug instructions. -----HUMOR [INSTRUC] Humorous Assembler Instruction Set (American Gumby Corporation; $0) is a very old set of Assembly Language Mnemonics with a humorous twist. [RealProg.TXT] RealProg.TXT - definition of a "real programmer". -----TUTORS: assembly language tutorials [ASMTUTR] Assembly Language Tutorial (ASMTUTR) (Auerbach, Joshua; $0) is a beginner's tutorial in Assembler. It includes the 8086/8088 instruction set. [MACHO] (Groff Software; $5-$20) in Assembly Language. It starts with a discussion of HEX arithmetic, touches on such basic tasks as multiplication and division, and ends with some advanced ideas such as BIN addition. This 14-Lesson course covers ground slowly and thoroughly and there are many tests to make sure you understand everything as you go along. It can be used with nothing more than DEBUG and no assembly language program is required. [PC_ASSEM] The PC Assembler Helper and Tutor (Nelson, Chuck; $10) is a program and tutorial designed to help those who are just starting to learn assembly language as well as those who know some assembler instructions, but want to have a firmer grasp of the complete instruction set for the 8086. It supports both Turbo Assembler and A86. PCAHT provides input and output of all standard 8086/8087 integral data types. These include 1 byte, 2 byte, 4 byte and 8 byte signed and unsigned numbers along with 1 byte and 2 byte hex, ASCII and binary data. Lastly, there is I/O for 10 byte BCD numbers. The interface has been designed so that beginners can use it with a minimum of trouble. There are also 30 pages of help for those BASIC programmers who want to use assembler language. [TRNCOMP] Training Computer (Castle Oaks Computer Services; $10) is a tutorial on machine and assembly languages. It includes a computer simulator and assembly programs; lessons in their use; example programs; and question and answer exercises. -----VIDEO: assembler video routines [LAMBDA] Lambda (Duro, Albert; $0) demonstrates how to use Interrupt 10H, Function 11H, Subfunction 0, to create an alternate character and substitute it for the default characters. [SCRNSAV] ScreenSave (SCRNSAV) (Barlow, Troy; $0) is a MASM routine that demonstrates using DOS from a TSR. It saves a MCGA 256-color palette and screen to disk. [Shadow] Shadow (Cravener, William; $0) is assembler code which shows how to create a shadowed window box, as well as how to save a copy of the current video screen contents, fill the screen with a background, pop down a window box, shadow the window box along the right and bottom sides, wait for a keypress then restore original screen contents. [Window1] Window1 (Blanford, Joe; $?) is actually a demo of how to make and use windows with machine language programs for MS-DOS. The source code is provided to allow you to modify and integrate it into your programs for better displays using colored windows. -----SIMULATR: simulators for other CPUs [PC370@_1, PC370@_2, PC370@_3] PC/370 (Higgins, Donald S.; $45) is a PC/370 Virtual Machine. The PC/370 package provides the capability to assemble, link, and execute IBM 370 assembler programs on any 80x86 MSDOS micro computer such as the IBM PC, XT, or AT. [Sim85] Sim85 (Lueschow, Kevin; $15) is an 8085 simulator that assists in writing code for the 8085 processor. It shows code, memory, ports, and registers simultaneously while allowing you to step through or run through the code non-stop. [SIM68] SIM68 (Fisch, Perry J.; $25) S19 object code. EGA/VGA monitor is required to support the I/O and A/D simulator modules. 512K is also required.